package com.zx.wx.utils;

import java.util.Map;

import com.alibaba.fastjson.JSON;
import com.zx.wx.parameter;
import com.zx.wx.wxInterface.Request;

/**
 * @author：朱笑    
 * @note：获取为关注用户的信息
 * @date：2016年9月1日 
 */
public class OAuthUtils {
	/**
	 * 
	 * 获取用户access_token和openid
	 *2016年8月25日 下午10:26:06
	 *@param account_token 系统缓存的token
	 *@param appID
	 *@param appsecret
	 *@param code
	 *@param reqeust
	 *@return
	 *@note:
	 */
	@SuppressWarnings("unchecked")
	public static Map<String,String> codeToOpenId(String appID,String appsecret,String code,Request reqeust){
		Map<String,String> resultMap=null;
		String url="https://api.weixin.qq.com/sns/oauth2/access_token?appid="+appID+"&secret="+appsecret+"&code="+code+"&grant_type=authorization_code";
		String result=reqeust.doGet(url);
//		String result="{\"access_token\":\"dIaDjom2qFtB6ngCFGcjXwNOpTnOIm4u3jku6YY05FENu5oCJ-wfuZds9H8FCNyHKOn8CR_3UP4f_z4w963Nv_zUPUKSUreAHc27u-E1uv4\",\"expires_in\":7200,\"refresh_token\":\"ctuNsgmmrywTsF3b36fDSNZxM4iOgEtZPfiMza_iGNEVD4PgRPokvy3I6XmVe9AIzj-Iuni-uaRN3xerNZJL10uIsFZJYOCmUvolWxu8VaA\",\"openid\":\"okYfGv9twGuc-_i1aiJ4lgi5_REc\",\"scope\":\"snsapi_base\"}";
		try {
			resultMap= JSON.parseObject(result, Map.class);
		} catch (Exception e) {
			e.printStackTrace();
		}
		return resultMap;
		}
	/** 
	//参数	描述
	//access_token	网页授权接口调用凭证,注意：此access_token与基础支持的access_token不同
	//expires_in	access_token接口调用凭证超时时间，单位（秒）
	//refresh_token	用户刷新access_token
	//openid	用户唯一标识，请注意，在未关注公众号时，用户访问公众号的网页，也会产生一个用户和公众号唯一的OpenID
	//scope	用户授权的作用域，使用逗号（,）分隔*/
	@SuppressWarnings("unchecked")
	public static Map<String,String> openIdToUserInfo(String access_token,String openid,String lang,Request reqeust){
		Map<String,String> resultMap=null;
		String url="https://api.weixin.qq.com/sns/userinfo?access_token="+access_token+"&openid="+openid+"&lang="+lang;
		String result=reqeust.doGet(url);
		try {
			resultMap=JSON.parseObject(result, Map.class);
		} catch (Exception e) {
			e.printStackTrace();
		}
		return resultMap;
	}
/**	
	{
		   "openid":" OPENID",
		   " nickname": NICKNAME,
		   "sex":"1",
		   "province":"PROVINCE"
		   "city":"CITY",
		   "country":"COUNTRY",
		    "headimgurl":    "http://wx.qlogo.cn/mmopen/g3MonUZtNHkdmzicIlibx6iaFqAc56vxLSUfpb6n5WKSYVY0ChQKkiaJSgQ1dZuTOgvLLrhJbERQQ4eMsv84eavHiaiceqxibJxCfHe/46", 
			"privilege":[
			"PRIVILEGE1"
			"PRIVILEGE2"
		    ],
		    "unionid": "o6_bmasdasdsad6_2sgVt7hMZOPfL"
		}
		参数	描述
		openid	用户的唯一标识
		nickname	用户昵称
		sex	用户的性别，值为1时是男性，值为2时是女性，值为0时是未知
		province	用户个人资料填写的省份
		city	普通用户个人资料填写的城市
		country	国家，如中国为CN
		headimgurl	用户头像，最后一个数值代表正方形头像大小（有0、46、64、96、132数值可选，0代表640*640正方形头像），用户没有头像时该项为空。若用户更换头像，原有头像URL将失效。
		privilege	用户特权信息，json 数组，如微信沃卡用户为（chinaunicom）
		unionid	只有在用户将公众号绑定到微信开放平台帐号后，才会出现该字段。详见：获取用户个人信息（UnionID机制）
*/
}
